<!DOCTYPE html>
<head>
    <title>Apiote: manifestos/Formats</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"
        integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
        crossorigin="anonymous"></script>

    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.1/css/brands.css"
        integrity="sha384-SYNjKRRe+vDW0KSn/LrkhG++hqCLJg9ev1jIh8CHKuEA132pgAz+WofmKAhPpTR7"
        crossorigin="anonymous">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.1/css/fontawesome.css"
        integrity="sha384-0b7ERybvrT5RZyD80ojw6KNKz6nIAlgOKXIcJ0CV7A6Iia8yt2y1bBfLBOwoc9fQ"
        crossorigin="anonymous">
    <link rel="stylesheet" href="https://unpkg.com/material-components-web@0.36.0/dist/material-components-web.min.css"
        integrity="sha512-xKSgTutWqX2F22Uxywtig03sHCUxl4pJw2dzeIxH1EDvbEwhg5M1/KBUvrxNDiTe5HSjHRLdaW6XBhuYawROQw=="
        crossorigin="anonymous">
    <link rel="stylesheet" href="https://code.cdn.mozilla.net/fonts/fira.css"
        integrity="sha512-+1KxIb9PlTfR4rUzuEswDvY4Nx+VfsoQxZstss5OUqZMs+bHl9/YPTS09vvC80XVtu6cqslNovpRXyap2gi6WQ=="
        crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/IBM-type/0.5.4/css/ibm-type.min.css"
        integrity="sha512-sky5cf9Ts6FY1kstGOBHSybfKqdHR41M0Ldb0BjNiv3ifltoQIsg0zIaQ+wwdwgQ0w9vKFW7Js50lxH9vqNSSw=="
        crossorigin="anonymous">
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="/styles/main.css">
    <link rel="stylesheet" href="/styles/article.css">

    <meta name="theme-color" content="#911f1b">

    <link rel="shortcut icon" href="/img/favicon/favicon.ico">
	<link rel="icon" sizes="16x16 32x32 64x64" href="/img/favicon/favicon.ico">
	<link rel="icon" type="image/png" sizes="196x196" href="/img/favicon/favicon-192.png">
	<link rel="icon" type="image/png" sizes="160x160" href="/img/favicon/favicon-160.png">
	<link rel="icon" type="image/png" sizes="96x96" href="/img/favicon/favicon-96.png">
	<link rel="icon" type="image/png" sizes="64x64" href="/img/favicon/favicon-64.png">
	<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32.png">
	<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16.png">
	<link rel="apple-touch-icon" href="/img/favicon/favicon-57.png">
	<link rel="apple-touch-icon" sizes="114x114" href="/img/favicon/favicon-114.png">
	<link rel="apple-touch-icon" sizes="72x72" href="/img/favicon/favicon-72.png">
	<link rel="apple-touch-icon" sizes="144x144" href="/img/favicon/favicon-144.png">
	<link rel="apple-touch-icon" sizes="60x60" href="/img/favicon/favicon-60.png">
	<link rel="apple-touch-icon" sizes="120x120" href="/img/favicon/favicon-120.png">
	<link rel="apple-touch-icon" sizes="76x76" href="/img/favicon/favicon-76.png">
	<link rel="apple-touch-icon" sizes="152x152" href="/img/favicon/favicon-152.png">
	<link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/favicon-180.png">
	<meta name="msapplication-TileColor" content="#911f1b">
	<meta name="msapplication-TileImage" content="/img/favicon/favicon-144.png">
	<meta name="msapplication-config" content="/img/favicon/browserconfig.xml">
</head>
<body>
    <div class="drawer-container-flex">
        <aside class="mdc-drawer mdc-drawer--permanent mdc-typography">
            <nav class="mdc-drawer__drawer">
                <header class="mdc-drawer__header">
                    <div class="mdc-drawer__header-content">
                        Where now?
                    </div>
                </header>
                <nav class="mdc-drawer__content mdc-list">
                    <a class="mdc-list-item" href="/">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true">home</i>Home
                    </a>
                    <a class="mdc-list-item" href="/about">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true">person</i>About
                    </a>
                    <a class="mdc-list-item" href="/donate">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true">attach_money</i>Donate
                    </a>
                    <a class="mdc-list-item mdc-list-item--activated" href="/manifestos/">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true">announcement</i>Manifestos
                    </a>
                    <!-- tod padding
                    <nav class="mdc-drawer__content mdc-list">
                    <a class="mdc-list-item" href="/manifestos/privacy">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true"></i>Privacy
                    </a>
                    </nav>
                    -->
                    <a class="mdc-list-item" href="/programs/">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true">devices</i>Programs
                    </a>
                    <a class="mdc-list-item" href="/credits/">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true">copyright</i>Credits and legal
                    </a>
                    <a class="mdc-list-item" href="/contact/">
                        <i class="material-icons mdc-list-item__graphic" aria-hidden="true">contact_support</i>Contact
                    </a>
                    <div class="drawer-bottom">
                        <div class="mdc-drawer__toolbar-spacer"></div>
                        <a href="/about/js.html" data-jslicense="1">
                            JavaScript license information
                        </a>
                    </div>
                </nav>
            </nav>
        </aside>
        <header class="mdc-top-app-bar">
            <div class="mdc-top-app-bar__row">
                <section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start">
                    <i class="material-icons mdc-top-app-bar__navigation-icon">menu</i>
                </section>
            </div>
        </header>
        <div>
            <div class="header-more mdc-top-app-bar--fixed-adjust">
            </div>
            <main class="mdc-top-app-bar--fixed-adjust article-main">
                <div class="mdc-layout-grid">
                    <div class="mdc-layout-grid__inner">
                        <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-1-tablet mdc-layout-grid__cell--span-1-mobile mdc-layout-grid__cell--span-2-desktop">
                        </div>
                        <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-10-tablet mdc-layout-grid__cell--span-10-mobile mdc-layout-grid__cell--span-8-desktop">
                            <div class="mdc-card article-card">
                                <div class="article-path">
                                    / > Manifestos > Formats
                                </div>
                                <div class="article-content">
                                    <h1 id="privacy-manifesto">Formats manifesto<a href="formats.yml"><sup><i class="material-icons signature">lock</i></sup></a></h1>
                                    <h2 id="why">Why?</h2>
                                        <p>Mainly, because a friend of mine once showed me <a href="http://coding2learn.org">Coding2Learn</a>, a great blog by Marc Scott containing an entry entitled <a href="http://coding2learn.org/blog/2014/04/14/please-stop-sending-me-your-shitty-word-documents">Please stop sending me your shitty Word documents</a>.</p>
                                        <p>But also because I think it’s proper and, what is probably most important, convenient.</p>
                                    <h2 id="prologus">Prologus</h2>
                                        <p>I love standards. And I love them open, free (as in beer and speech), and simple. Without standards we couldn’t watch funny cats on the Internet.</p>
                                    <h2 id="meritum">Meritum</h2>
                                        <h3 id="this-website">This website</h3>
                                            <p>This website works as intended with the latest stable version of Firefox®<a href="#fn1" class="footnote-ref" id="fnref1"><sup>1</sup></a>. It means that—for now—it should work on all major browsers.</p>
                                            <p>This may change when Firefox decides to implement WebP support. Then, <a href="http://caniuse.com/#search=webp">some browsers</a> may not show images.</p>
                                        <h3 id="text">Text</h3>
                                            <p>Text should be plain. I could call “period” here but I’ll explain my point of view.</p>
                                            <p>There are actually two disjunctive cases:</p>
                                            <dl>
                                                <dt>formatting is not important</dt>
                                                    <dd><p>Then don’t include it. You don’t have to wrap a little of text into a huge binary format of any office suite. Open a notepad of choice, type it, and save as text file. Formatting text that doesn’t need it is a waste of time and resources. And it hurts the eyes of the reader.</p>
                                                        <p>If You want to emphasize something, put a list, or a header, then use a markup language. Previous versions of this manifesto recommended Markdown. I realised however that Markdown is not a standard and comes in various flavours. Since then I’ve been recommending RestructuredText. Still, it’s just a recommendation, You can send me any reasonable markup language. But I repeat: <em>resonable</em>.</p>
                                                    </dd>
                                                <dt>formatting is important</dt>
                                                    <dd><p>I get it, there are official documents, CVs, company print-outs with logos, books, articles, etc. Still, it’s even worse idea to use office suite formats in this case, because what You send may not be the same to what I receive—my program may be different, I may have to import Your proprietary format, or my program may just be a different version—the document may fall apart.</p>
                                                    <p>Use PDF if You want to give me a finished document, use L<sup>A</sup>T<sub>E</sub>X if You work with me on the document.</p>
                                                    </dd>
                                            </dl>
                                            <p>I hereby promise not to ever send You office suite documents, and to use plain text, RestructuredText, PDF, or L<sup>A</sup>T<sub>E</sub>X instead.</p>
                                        <h3 id="typography">Typography</h3>
                                            <p>We fortunately live in the times of Unicode, when with single encoding we can produce a text containing characters from enormous number of languages. It’s painful when people use ‘-’ (hyphen-minus, U+002D) when it should be ‘–’ (en dash, U+2013), ‘—’ (em dash, U+2014), or rarely ‘−’ (minus, U+2212). Also &quot; and ' (typewriter quotation marks) are not the same as “,” (double quotes, U+201C and U+201D) and ‘,’ (quotes, U+2018 and U+2019). It’s especially the case in Polish in which the left quotes are respectively „ (U+201E) and ‚ (U+201A). One more notable example is ... (three dots) instead of … (ellipsis, U+2026).</p>
                                            <p>Specific list of proper characters is way beyond the capacity of this entry.</p>
                                            <p>Please, review the use of proper characters You write, which I also hereby promise to do.</p>
                                        <h3 id="emails">Emails</h3>
                                            <p>As I stated above “Text should be plain.” Not only is HTML in emails a waste of time and resources, but also security threat, as it may contain malicious code. Moreover, people using text-based email clients hardly ever receive HTML emails properly (this apply to me).</p>
                                            <p>I hereby promise not to send HTML emails.</p>
                                            <h2 id="date-time">Date &amp; time</h2>
                                            <p>For expressing date and time there is the way standardised by <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a>.</p>
                                            <p>If the time-zone is omitted, I understand that either the local time-zone applies—if the place is given—, or the time is in UTC, otherwise.</p>
                                            <p>My favourite format is without delimiters (‘-’, ‘:’) but You are free to use the standard Your own favourite way.</p>
                                            <p>On a side note neither is the calendar nor the clock we use logical. That’s why I prefer <a href="http://dozenalsociety.org.uk/apps/timeunits.html">dozenal clock (with 24 hours)</a> and <a href="https://en.wikipedia.org/wiki/International_Fixed_Calendar">thirteen month calendar</a>. However—logical as they are—they are unusual so I won’t use them without Your explicit consent.</p>
                                        <h3 id="photos-pictures">Photos &amp; pictures</h3>
                                            <p>For vector graphics there is an open standard – SVG.</p>
                                            <p>For raster graphics there’s not one, perfect standard so I’ll accept all major formats. From me, You can expect exactly 2:</p>
                                            <ul>
                                                <li>if I have access to the original, raw data, I’ll use TIFF with LZW compression,</li>
                                                <li>otherwise, I’ll use WebP.</li>
                                            </ul>
                                            <p>The reasons for using WebP are:</p>
                                            <dl>
                                                <dt>versatility</dt>
                                                    <dd><p>it can be animated (instead of GIF/APNG) and can hold alpha (instead of GIF/PNG) at the same time,</p>
                                                </dd>
                                                <dt>size</dt>
                                                    <dd><p>it’s visibly smaller (in bytes) than other formats with the same quality.</p>
                                                    </dd>
                                                <dt>colour space</dt>
                                                    <dd><p>it’s not indexed (unlike GIF), and so it’s more convenient to edit.</p>
                                                    </dd>
                                            </dl>
                                        <h3 id="sound">Sound</h3>
                                            <p>Like with images, there’s no standard.</p>
                                            <p>From me, You can expect 2 formats:</p>
                                            <ul>
                                                <li>if I have access to the original, raw data, I’ll use FLAC,</li>
                                                <li>otherwise, I’ll use Opus.</li>
                                            </ul>
                                        <h3 id="videos">Videos</h3>
                                            <p>Again, no standard.</p>
                                            <p>This time, You can expect: WebM (when it takes reasonable time to encode) or Matroska with H.265 for video and Opus for sound.</p>
                                            <p>(I’m following the development of AV1, and I’ll be more than glad to use it when it’s ripe and encoders are fast.)</p>
                                    <h2 id="epilogus">Epilogus</h2>
                                        <p>As I said, it’s for convenience and to respect the receiver—nobody has to use some esoteric software.</p>
                                        <p>If You feel I offended You, have some remarks, think something is better, then feel free to use any kind of contact to share Your thoughts with me, e.g. the contact form available <a href="/contact">there</a>.</p>
                                        <section class="footnotes">
                                            <hr />
                                            <ol>
                                                <li id="fn1"><p>Firefox is a registered trademark of the Mozilla Foundation<a href="#fnref1" class="footnote-back">↩</a></p></li>
                                            </ol>
                                        </section>
                                </div>
                            </div>
                        </div>
                        <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-1-tablet mdc-layout-grid__cell--span-1-mobile mdc-layout-grid__cell--span-2-desktop">
                        </div>
                    </div>
                </div>
            </main>
        </div>
    </div>

    <script src='https://unpkg.com/material-components-web@0.36.0/dist/material-components-web.min.js'
        integrity="sha512-fzmFt2MbZhS3Cwv9gSX+jRqpfUdaKupP0WbJyaK09Och9eMm8n1ol1fnh8EEJ1sH5HzG16etbpejWBEMvXV5ow=="
        crossorigin="anonymous"></script>
    <script>
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt GNU-AGPL-v3.0
window.mdc.autoInit();
const topAppBarElement = document.querySelector('.mdc-top-app-bar');
let topAppBar = new mdc.topAppBar.MDCTopAppBar(topAppBarElement);

$('.top-bar-menu-button').css('display', 'initial');
$('.mdc-drawer--permanent').removeClass("mdc-drawer--permanent").addClass("mdc-drawer--temporary");
$('.drawer-bottom').css('width', '25%');

let drawer = new mdc.drawer.MDCTemporaryDrawer(document.querySelector('.mdc-drawer--temporary'));
document.querySelector('.mdc-top-app-bar__navigation-icon').addEventListener('click', () => drawer.open = true);
// @license-end
    </script>
</body>
</html>
